//package com.rbac.service.test.impl;
//
//import com.common.Result;
//import com.domain.dto.test.EmployeeRoleDto;
//import com.domain.vo.test.PageBean;
//import com.github.pagehelper.PageHelper;
//import com.github.pagehelper.PageInfo;
//import com.rbac.mapper.test.EmployeeMapper;
//import com.rbac.pojo.Employee;
//import com.rbac.service.test.EmployeeService;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import java.util.List;
//
//@Service
//public class EmployeeServiceImpl implements EmployeeService {
//
//    @Autowired
//    EmployeeMapper employeeMapper;
//
//    /**
//     * 用户分页列表
//     * @param pageNum
//     * @param pageSize
//     * @return
//     */
//    @Override
//    public Result getList(Integer pageNum, Integer pageSize) {
//
//        //
//        //开启分页
//        PageHelper.startPage(pageNum, pageSize);
//
//        //查询数据库
//        List<Employee> list = employeeMapper.getList();
//
//        //设置分页
//        PageInfo<Employee> pageInfo = new PageInfo<>(list);
//
//        //获取分页的值
//        PageBean<Employee> pageBean = new PageBean<>();
//        pageBean.setTotal(pageInfo.getTotal());
//        pageBean.setItem(pageInfo.getList());
//        //装填分页信息
//        return Result.success(pageBean);
//    }
//
//    @Override
//    public Result delete(Integer id) {
//        //查询用户是否存在
//        Employee employee = getEmployeeById(id);
//        if(employee == null){
//            return Result.fail("用户不存在");
//        }
//
//        //删除用户
//        employeeMapper.delete(id);
//
//        //TODO 删除员工信息后，删除关系表信息
//        employeeMapper.deleteUserRole(id);
////        employeeMapper.deleteUserRole(employee.getId());
//        return Result.success();
//    }
//
//    @Override
//    public Result save(Employee employee) {
//        //查询用户是否存在，或者相关查询
//        Employee queryEmployee = getEmployeeById(employee.getId());
//        if(queryEmployee != null){
//            return Result.fail("用户已存在");
//        }
//        //保存用户
//        employeeMapper.save(employee);
//
//        //TODO v1将用户权限保存到UserRole中
//        //v2 批量保存用户权限到UserRole中 xml文件中编写动态sql语句
//        //默认新注册的用户角色都是员工，从底层做起
//
//        System.out.println(employee.getId());
//        //此处的6为角色表员工角色的id
//        employeeMapper.saveUserRole(employee.getId(), 6);
//
//        return Result.success();
//    }
//
//    @Override
//    public Result update(Employee employee) {
//        //更新用户
//        employeeMapper.update(employee);
//
//        //TODO 将用户权限保存到UserRole中
//        //v2 批量保存用户权限到UserRole中
//
////        employeeMapper.saveUserRole(employee.getId(), 0);
//
//        return Result.success();
//    }
//
//    /**
//     * 更新的v2版本
//     * @param employeeRoleDto
//     * @return
//     */
//    @Override
//    public Result updateEmployeeRole(EmployeeRoleDto employeeRoleDto) {
//        //TODO 获取dto的数据
////        Employee employee = employeeRoleDto.getEmployee();
//        Employee employee = new Employee();
//        List<Integer> array = employeeRoleDto.getArray();
//        //校验数据
//
//        //保存数据库
//        employeeMapper.update(employee);
//        //维护user_role中间表
//        List<Integer> dataArr = employeeMapper.getUserRoleList(employee.getId());
//        for(Integer roleId: array){
//            if(!dataArr.contains(roleId)){
//                employeeMapper.saveUserRole(employee.getId(), roleId);
//            }
//        }
//
//        return null;
//    }
//
//    @Override
//    public Employee getEmployeeById(Integer id) {
//        //根据id查询用户
//        return employeeMapper.getById(id);
//    }
//
//    @Override
//    public List<Employee> getEmployeeAllById() {
//        //根据主键查询全部用户（不分页）
//
//        return employeeMapper.getList();
//    }
//
//    @Override
//    public List<Employee> listLike(String name) {
//        //模糊查询数据库,按照名字
//        List<Employee> employees = employeeMapper.getListLikeName(name);
//        return employees;
//    }
//
//    @Override
//    public Result updateState(Integer id, Boolean admin) {
//        //根据id查询用户
//        Employee employee = employeeMapper.getById(id);
//        employee.setAdmin(admin);
//        System.out.println("当前用户是否为超级管理员："+employee.getAdmin());
//        //更新用户信息
//        int count = employeeMapper.updateState(id, admin);
//        if(count == 0){
//            return Result.fail("更新失败");
//        }
//        return Result.success();
//    }
//
//
//}
